package com.fzh.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.fzh.pojo.dto.ProductLinkImageDTO;
import com.fzh.pojo.entity.Product;

public interface ProductMapper {
	
	/**
	 * 查询出所有的商品信息
	 * @return
	 */
	public List<Product> selectAllProduct(@Param("setValue")Integer setValue,@Param("limit")Integer limit,@Param("name")String name,@Param("f_ptid")String f_ptid,@Param("isSoldOut")String isSoldOut,@Param("isRecommendMain")String isRecommendMain);
	
	/**
	 * 查询出商品表里的所有数据条数
	 * @return
	 */
	public int selectProductCounts(@Param("name") String name,@Param("f_ptid")String f_ptid,@Param("isSoldOut")String isSoldOut,@Param("isRecommendMain")String isRecommendMain);

	/**
	 * 添加商品的信息
	 * @param product
	 * @return
	 */
	public Integer insertProduct(Product product);

	/**
	 * 修改商品的信息根据id
	 * @param product
	 * @return
	 */
	public Integer updateProductById(Product product);

	/**
	 * 批量删除商品数据
	 * @param ids
	 * @return
	 */
	public Integer deleteAllProductByIds(List<String> ids);
	
	/**
	 * 删除单个的商品
	 * @param id
	 * @return
	 */
	public Integer deleteProductById(int id);

	/**
	 * 修改商品是否在售状态
	 * @param id
	 * @param number
	 * @return
	 */
	public Integer updateProductIsSoldOutSwitchById(@Param("id")Integer id, @Param("number")Integer number);

	/**
	 * 修改商品的是否允许删除状态
	 * @param id
	 * @param number
	 * @return
	 */
	public Integer updateProductIsDelSwitchById(@Param("id")Integer id, @Param("number")Integer number);

	/**
	 * 修改商品是否推荐到首页的状态
	 * @param id
	 * @param number
	 * @return
	 */
	public Integer updateProductIsRecommendMainSwitchById(@Param("id")Integer id, @Param("number")Integer number);

	/**
	 * 编辑商品是否显示到滚动图
	 * @param id
	 * @param number
	 * @return
	 */
	public Integer updateProductIsRollImgSwitchById(@Param("id")Integer id, @Param("number")Integer number);

	/**
	 * 查询出所有商品，用于商品图片列表下拉框内添加（不包括已下架）
	 * @return
	 */
	public List<Product> selectAllProductWitchImagesSelect();

	/**
	 * 查询出商品信息根据id，用于把数据添加到购物车页面input标签内
	 * @param id
	 * @return
	 */
	public Product selectProductByIdWitchCartInput(Integer id);

	/**
	 * 修改商品图片信息，与图片列表设置主图有联系
	 * @param f_pid
	 * @param img
	 */
	public void updateProductImgMainById(@Param("f_pid")Integer f_pid, @Param("img")String img);

	/**
	 * 前台查询所有商品
	 * @return
	 */
	public List<Product> selectAllProductF();

	/**
	 * 查询商品根据id用于商品类型列表里的删除功能做处理
	 * @param id
	 * @return
	 */
	public List<Product> selectProductTypeBelowIsProductById(Integer id);
	
	/**
	 * 查询商品分类里面全部商品根据分类id查询商品表里面的f_uid
	 * @param id
	 * @return
	 */
	public List<Product> selectProductTypeList(Integer id);
	
	/**
	 * 查询根据name模糊查询
	 * @param id
	 * @return
	 */
	public List<Product> selectProductTypeListMh(Product product);

	/**
	 * 查询出前j条数据根据id降序排列
	 * @param i  从第几条显示
	 * @param j  显示多少条
	 * @return
	 */
	public List<Product> selectAllNewProsuctByIdDescF(@Param("i")int i, @Param("j")int j);

	/**
	 * 查询轮播图商品
	 * @return
	 */
	public List<Product> selectBannerPro();

	/**
	 * 查询推荐商品
	 * @return
	 */
	public List<Product> selectProductTJ();
	
	public List<ProductLinkImageDTO> selectProductDetail(@Param("id")int id);
	
	public Product selectProductDetailXX(@Param("id")int id);
}
